shallow copy and deep copy in c